"""
问题： 在迭代操作或者其他操作的时候， 怎样只保留最后有限几个元素的历史记录？
"""

# 解决方案：
# 使用collections.deque

from collections import deque


def main():
    # 构造一个固定大小的队列， 当新元素加入并且这个队列已满的时候， 最古老的元素就会被删除
    q = deque(maxlen=3)  # 双向队列
    q.append(1)
    q.append(2)
    q.append(3)
    print(q)
    q.append(4)
    q.append(5)
    print(q)
    q.pop()  # 在队列两端插入或删除元素的时间复杂度都是O(1), 而在列表的开头和结尾删除元素的时间复杂度为O(n)


if __name__ == '__main__':
    main()
